package E_2024;
/*
    总共有n个人在机房，每个人有一个标号(1<=标号<=n)，他们分成了多个团队，需要你根据收到的m条消息判定指定的两个人是否在一个团队中，具体的:
    1.消息构成为abc，整数a、b分别代表两个人的标号，整数c代表指令
    2.c==0代表a和b在一个团队内
    3.c==1代表需要判定a和b的关系，如果a和b是一个团队，输出一行’we are a team’,如果不是，输出一行'we are not a team'
    4.c为其他值，或当前行a或b超出1~n的范围，输出da pian zi
输入描述
    1.第一行包含两个整数n，m(1<=n,m<100000),分别表示有n个人和m条消息
    2.随后的m行，每行一条消息，消息格式为:abc(1<=a,b<=n,0<=c<=1)
输出描述
    1.c==1,根据a和b是否在一个团队中输出一行字符串，在一个团队中输出we are a team不在一个团队中输出'we are not a team'
    2.c为其他值，或当前行a或b的标号小于1或者大于n时，输出字符串da pian zi
    3.如果第一行n和m的值超出约定的范围时，输出字符串”Null“。

    https://pic3.zhimg.com/v2-4cfc2fbb15706981be2446d04fef0e90_1440w.jpg
    https://pic2.zhimg.com/v2-3eab297e780e70c49ba728af1e9379c9_1440w.jpg
*/
public class E_100_59 {
    public static void main(String[] args) {
        ans(new int[][]{{1,2,0},{4,5,0},{2,3,0},{1,2,1},{2,3,1},{4,5,1},{1,5,1},{1,3,1}});
    }
    public static void ans(int[][] arr){
        // 将同一队伍人员下标下的值改为相同值
        int[] team = new int[arr.length+1];
        for (int[] qus : arr) {
            if (qus[2] == 0){
                if (team[qus[0]] == 0)
                    team[qus[0]] = qus[0];
                team[qus[1]] = team[qus[0]];
            }else if(qus[2] == 1){
                // 通过判断人员下标值确定是否一个团队
                if (team[qus[0]] == team[qus[1]])
                    System.out.println("we are a team");
                else
                    System.out.println("we are not a team");
            }else {
                System.out.println("da pian zi");
            }
        }
    }
}
